#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <errno.h>
#include <string.h>
#include <unistd.h>

int main(){
    int num = 10;
    if(vfork() == 0){
        // 子进程： 先于父进程执行的必然性
        printf("--pid(%d) ppid(%d)---\n", getpid(), getppid());
        sleep(1);  // 休息时，调度器无法让父进程执行
        // 修改num （父子进程是同步的）
        num += 10;
        printf("--pid(%d) ppid(%d) num is %d---\n", getpid(), getppid(), num);
        
        _exit(0);
    }

    printf("---parent pid(%d) num is %d---\n", getpid(), num);
    wait(NULL);
    printf("---over--\n");
    return 0;
}